package mj.scott.back.base.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.tags.Tag;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;
import java.util.List;

@Configuration
public class Knife4jConfig {

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI().info(getApiInfo())
                .tags(getTagsOrdered());
    }

    //定义API基本信息（包含作者信息）
    private Info getApiInfo() {
        return new Info()
                .title("EXAM API DOC")
                .description("在线考试平台接口文档")
                .version("1.0.0")
                .contact(new Contact().name("明镜"));
    }
    //定义Tag顺序
    private List<Tag> getTagsOrdered() {
        return Arrays.asList(
                new Tag().name("用户模块").description("用户模块接口"),
                new Tag().name("考试模块").description("考试模块接口"),
                new Tag().name("试卷模块").description("试卷模块接口"),
                new Tag().name("题目模块").description("题目模块接口"),
                new Tag().name("试题模块").description("试题模块接口")
        );
    }
}
